package com.geek.mqttiot.producer;

import org.springframework.integration.annotation.MessagingGateway;
import org.springframework.integration.mqtt.support.MqttHeaders;
import org.springframework.messaging.handler.annotation.Header;

@MessagingGateway(defaultRequestChannel = "iotMqttInputChannel")
public interface IotMqttGateway {

    /**
     * 向默认的 topic 发送消息
     * @param payload 消息内容
     */
    void sendMessage2Mqtt(String payload);

    /**
     * 向指定的 topic 发送消息
     * @param payload 消息内容
     * @param topic 消息主题
     */
    void sendMessage2Mqtt(String payload,@Header(MqttHeaders.TOPIC) String topic);

    /**
     * 向指定的 topic 发送消息，并指定服务质量参数
     * @param topic 消息主题
     * @param qos 消息质量
     * @param payload 消息内容
     */
    void sendMessage2Mqtt(@Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) int qos, String payload);
}
